Dwell-time based generation of a user interest profile

ABSTRACT

A method is provided for building a user interest profile, including the following method operations: identifying features of each of a plurality of articles; for a given user, logging views of one or more of the plurality of articles; for each view, measuring a corresponding dwell time for the view by the given user; applying a weight to each view based on the corresponding measured dwell time; determining user interest scores for features of the one or more of the plurality of articles based on the weighted views; generating a user interest profile for the given user based on the user interest scores.

RELATED APPLICATIONS

The present disclosure is related to U.S. application Ser. No.13/843,433, filed Mar. 15, 2013, entitled “Display Time of a Web Page,”U.S. application Ser. No. 13/843,504, filed Mar. 15, 2013, entitled“Page Personalization Based on Article Display Time,” and to U.S.application Ser. No. 13/836,758, filed Mar. 15, 2013, entitled “Methodand System for Measuring User Engagement Using Scroll Dwell Time.” Thedisclosures of these applications are herein incorporated by referencein their entirety for all purposes.

BACKGROUND

1. Field of the Invention

The present invention relates to methods and systems for generating auser interest profile.

2. Description of the Related Art

At present, Internet users enjoy access to vast quantities ofinformation available through websites and their associated webpages. Toprovide an even better experience for users, website owners seek tocustomize the content of the webpages presented to users based onknowledge of the user's preferences, browsing history, and otherinformation specific to each user. By acquiring a better understandingof a given user, a website owner can benefit by being able to providerelevant content and advertising to the user, and the user also benefitsby receiving content that he or she is more likely to find engaging.

It is in this context that embodiments of the invention arise.

SUMMARY

Broadly speaking, embodiments of the present invention provide methodsand systems for building a user interest profile. Several inventiveembodiments of the present invention are described below.

In one embodiment, a method is provided for building a user interestprofile, including the following method operations: identifying featuresof each of a plurality of articles; for a given user, logging views ofone or more of the plurality of articles; for each view, measuring acorresponding dwell time for the view by the given user; applying aweight to each view based on the corresponding measured dwell time;determining user interest scores for features of the one or more of theplurality of articles based on the weighted views; generating a userinterest profile for the given user based on the user interest scores;wherein the method is executed by at least one processor.

In one embodiment, the dwell time for a view of a given article definesa measured amount of time spent by the given user during active viewingof the given article.

In one embodiment, applying the weight to each view defines an increaseor decrease in a value associated with the view that is based on thecorresponding measured dwell time.

In one embodiment, applying the weight to each view is based on alogarithmic function of the corresponding measured dwell time.

In one embodiment, the user interest score for a given feature defines alevel of interest for the given feature by the given user.

In one embodiment, the user interest profile is defined by features ofthe one or more of the plurality of articles and their associated userinterest scores.

In one embodiment, the identified features include one or more ofcategories, entities, persons, locations, subjects, teams.

In one embodiment, the method further comprises: for a plurality ofusers, logging views of the plurality of articles; for each view by oneof the plurality of users, measuring a corresponding dwell time for theview by the one of the plurality of users; applying a weight to eachview by one of the plurality of users based on the correspondingmeasured dwell time of the one of the plurality of users; whereindetermining user interest scores is based on the weighted views of theplurality of users.

In one embodiment, applying the weight to each view by one of theplurality of users is based on a logarithmic function of thecorresponding measured dwell time of the one of the plurality of users.

In one embodiment, determining user interest scores includes: for agiven feature, determining an overall probability that the plurality ofusers will view an article having the given feature; determining, forthe given feature, an expected number of views by the given user basedon the overall probability that the plurality of users will view anarticle having the given feature; determining an actual number of viewsof articles having the given feature by the given user; comparing theactual number of views to the expected number of views.

Other aspects of the invention will become apparent from the followingdetailed description, taken in conjunction with the accompanyingdrawings, illustrating by way of example the principles of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by reference to the followingdescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1 illustrates a system for building a user interest profile, inaccordance with an embodiment of the invention.

FIG. 2 conceptually illustrates the application of various factors todetermine weights for clicks on particular content items for purposes ofbuilding a user interest profile, in accordance with an embodiment ofthe invention.

FIG. 3 illustrates a stream of article previews, in accordance with anembodiment of the invention.

FIG. 4 illustrates an embodiment of a general computer system, inaccordance with an embodiment of the invention.

DETAILED DESCRIPTION

The following embodiments describe systems and methods for building auser interest profile. It will be obvious, however, to one skilled inthe art, that the present invention may be practiced without some or allof these specific details. In other instances, well known processoperations have not been described in detail in order not tounnecessarily obscure the present invention.

Subject matter will now be described more fully hereinafter withreference to the accompanying drawings, which form a part hereof, andwhich show, by way of illustration, specific example embodiments.Subject matter may, however, be embodied in a variety of different formsand, therefore, covered or claimed subject matter is intended to beconstrued as not being limited to any example embodiments set forthherein; example embodiments are provided merely to be illustrative.Likewise, a reasonably broad scope for claimed or covered subject matteris intended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to be takenin a limiting sense.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of example embodiments in whole or in part.

In general, terminology may be understood at least in part from usage incontext. For example, terms, such as “and”, “or”, or “and/or,” as usedherein may include a variety of meanings that may depend at least inpart upon the context in which such terms are used. Typically, “or” ifused to associate a list, such as A, B or C, is intended to mean A, B,and C, here used in the inclusive sense, as well as A, B or C, here usedin the exclusive sense. In addition, the term “one or more” as usedherein, depending at least in part upon context, may be used to describeany feature, structure, or characteristic in a singular sense or may beused to describe combinations of features, structures or characteristicsin a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again,may be understood to convey a singular usage or to convey a pluralusage, depending at least in part upon context. In addition, the term“based on” may be understood as not necessarily intended to convey anexclusive set of factors and may, instead, allow for existence ofadditional factors not necessarily expressly described, again, dependingat least in part on context.

In the present disclosure, methods and systems are described for usingarticle-level (or page-level) dwell time, or user time spent, forpricing both guaranteed delivery (GD) display ads contracts andnon-guaranteed delivery (NGD) display ads contracts in online displayadvertising. Methods and systems for determining dwell time are providedwith reference to U.S. application Ser. No. 13/843,433, filed Mar. 15,2013, entitled “Display Time of a Web Page,” and U.S. application Ser.No. 13/843,504, filed Mar. 15, 2013, entitled “Page PersonalizationBased on Article Display Time,” the disclosures of which areincorporated by reference.

Broadly speaking, systems and methods in accordance with the presentdisclosure leverage article-level dwell time information for building auser interest profile. Dwell time information provides a more accurateand fine-grained understanding of user engagement than conventionalclick or action-based measures of user engagement. Therefore, itsapplication to various user interest models as discussed in furtherdetail below serves to improve the quality of the user interest profilein representing the user's true interests. Compared with conventionalmethods and systems for user profile building and content selection,methods and systems in accordance with the present invention can provideusers with improved content selections based on an improved userinterest profile that is generated based on article-level dwell timeunderstanding of the user.

FIG. 1 illustrates a system for building a user interest profile, inaccordance with an embodiment of the invention. In the illustratedembodiment, a user 100 operates a user device 102 to access content overa network 104. Broadly speaking, the network can be any kind of networkcapable of transmitting data, such as a local-area network (LAN), awide-area network, (WAN), or the Internet, and may include wired orwireless networks or combinations thereof. A content server 106 isconfigured to serve content over the network for presentation on theuser device 102.

The content server 106 may include a selection module 108 that isconfigured to identify content items from a content data storage 110 forrecommendation or presentation to the user. Previews of the recommendedcontent items can thus be presented to the user. The user may thenselect from amongst the content item previews a specific content item toaccess in its full form. It should be appreciated that content items caninclude any of various kinds of content which may be presented through aclient device 102, such as articles, videos, images, and audio, by wayof example and not by way of limitation.

Furthermore, it is noted that throughout the present specification, forpurposes of illustrating principles in accordance with embodiments ofthe invention, reference is made to articles in particular as oneexample of a content item. However, the principles and methods describedherein should not be understood as limited to articles only, but may beapplied to any suitable content item, with appropriate modifications asneeded which will be apparent to those skilled in the art.

Broadly speaking, an article is principally defined by a body of text,but may also include various other portions, such as a title/headline,summary, subheading, image, video, animation, audio, interactive appletor script, etc. An article can be a news story, editorial, review, orother type of article. A preview of an article may consist of itsheadline, a synopsis, an image, a text portion (e.g. first sentence orportion thereof), or any other portion or representative informationwhich may preview the article. Hence, in accordance with embodiments ofthe invention, specific articles may be selected from a pool of articlesfor recommendation to a user, and the previews for the selected articlesmay be presented to the user, e.g. on a web page. The user may selectone of the previews, and thereby navigate to, or otherwise access, theactual article in its entirety.

The selection of articles which are to be recommended or presented to auser can be based on a user interest profile associated with the user.Thus, in the illustrated embodiment, the selection module 108 isconfigured to access a user interest profile stored in a user profilestorage 112, the user interest profile being associated with the user100. The user interest profile defines various content features whichare determined to be of interest to the user, and may also define alevel of interest on the part of the user, or a weight, for a givencontent feature. In one embodiment, content items are ranked by applyingthe weights from the user profile of the specific user to features whichare associated with the content items. In this manner, content itemshaving features which are more highly weighted in the user profile willbe ranked higher than content items having features which are lessweighted (or non-existent) in the user profile. Based on the determinedranking, previews of the highest ranking content items can be presentedto the user for selection.

It will be appreciated that the foregoing discussion relating toarticles specifically may also apply to other types of content, such asvideos, images, audio, and other types of content. Such content itemscan be selected from a pool of content items based on a user interestprofile. Previews of the selected content items can be presented to theuser, from which the user may select a given content item preview toaccess its corresponding content item in full. By way of example, apreview of a video might include a representative screenshot from thevideo, a title, a text summary of the contents of the video, etc.

A content feature can be broadly understood to encompass any kind ofdescriptive terms or items that may characterize a content item. By wayof example, and not limitation, there may be various content featuretypes, including but not limited to, categories, entities, persons,locations, subjects, teams, events, dates, times, or any other featurewhich may fairly characterize a content item. Furthermore, feature typesmay encompass other types of noun-phrases, topics (explicit or latent),implicit latent factors in algorithms/models such as collaborativefiltering algorithms, various content types (e.g. hard news, breakingnews, celebrity/entertainment news, blogs, tweets, etc.), contentprovider names, content length, presentation type (e.g. text-only fulltext article, abstract, headline, all of the foregoing plus images,etc.), age of content at time of presentation, etc. It will beappreciated that there may be many other types of features in accordancewith embodiments of the invention, and those specifically describedherein are provided by way of example without limitation.

It should be appreciated that a content item may have many contentfeatures associated therewith. For example, an article about a baseballgame may be determined to have features such as the following: categoryfeatures which characterize the article as being a sports article, andmore specifically, a baseball article; entity features which identifythe teams mentioned in the article; person features which identifypersons such as specific players that are mentioned in the article;location features which identify the hometown locations of the teams ora location where the game was played; etc. As another example, anarticle about a political election might be determined to have thefollowing features: a category feature such as politics; a subjectfeature such as the election; person features such as the candidates inthe election; a location feature identifying the location of theelection related activity; etc.

It should be appreciated that the same term may be defined for differentfeature types. For example, an article about the city of San Franciscomight be characterized as having both a subject feature and a locationfeature defined by the term “San Francisco.” With continued reference toFIG. 1, a feature identifier 120 is provided for identifying orotherwise determining features of content items, and storing suchfeatures in association with their respective content items. It will befurther appreciated that features of a content item such as an articlemay be identified by applying any of various processing techniques tothe article. These may include methods for identifying keywords,pronouns, titles, headings, or any other aspects of an article that maybe processed to define a feature which characterizes the article. Suchmethods may employ semantic analysis, natural language processing, orother technologies which may be applied to identify characterizationfeatures that may be utilized to both characterize articles and defineinterests of a user in a user interest profile. Furthermore, it is notedthat a content feature can be manually assigned by an editor.

Existing approaches to building a user interest profile have been basedon clicks or views of articles. However, a single click or pageview mayor may not be representative of a user's actual interaction with anarticle. For example, a user may click on a link to an article, read thefirst few sentences and decide that they are not interested in readingthe remainder of the article. In a click-based approach to profilebuilding, such a situation will have the same representation as that inwhich the user clicked on the link and read the article in its entirety,because both situations resulted in a single recorded click or pageview.However, as noted above, methods and systems have been described formeasuring the amount of time that a user dwells on a given article. Inaccordance with embodiments of the invention described herein, thisdwell time can be applied to construct a more accurate user interestprofile. In particular, it has been discovered that clicks may beweighted by the log of their corresponding dwell times, and the resultsmay be applied to build an improved user interest profile.

With continued reference to FIG. 1, a dwell time analyzer 114 isconfigured to analyze data indicative of interactions by the user withan article, and determine the user's dwell time for a given article.This dwell time data is stored in a dwell time data storage 116. Aprofile builder 118 is configured to build or update a user interestprofile based on the dwell time data for a given user. Various modelscan be applied to define user interest profiles. As described below,calculations according to various models may entail calculation of alogarithm. It is noted that in various embodiments, the logarithm may bethe natural logarithm (logarithm to the base e), or may have any otherbase.

FIG. 2 conceptually illustrates the application of various factors todetermine weights for clicks on particular content items for purposes ofbuilding a user interest profile, in accordance with an embodiment ofthe invention. In the illustrated embodiment, a plurality of contentpreviews 200 are presented to a user. The content previews 200 may bepresented in a scrollable stream, by way of example, such that the usermay interact with the content previews through scrolling thepresentation up and down so as to view different ones of the contentpreviews. In this manner, pre-click activity 202 by the user can bedetermined, that is, interactions with the content previews such asscrolls of the stream, the maximum depth within the stream to which theuser scrolls, the specific location of a content preview which the userultimately clicks on, the amount of time that the user spends at anyparticular location within the stream, etc.

When the user is interested in viewing a particular content item basedon seeing its preview, the user will click on the preview, or otherwiseindicate selection of the preview (e.g. hitting a button designated forthis purpose such as an enter key, gesturing in a particular direction,tapping on the preview, etc.) so as to access or navigate to the fullpresentation of the content item. In the illustrated embodiment, theuser's click 204 on an article preview results in presentation of thefull version of the article 206. Post-click activity of the user can bedetermined once the article 206 is presented to the user. By way ofexample, post-click activity may include the amount of time that theuser spends viewing the article (article dwell time), the amount of timethe user spends at any particular location within the article, the depthto which the user scrolls within the article, etc.

A weighting engine 210 applies the pre-click activity and/or thepost-click activity of the user to determine a weight that will beapplied to the click 204. In other words, the click on the articlepreview which resulted in presentation of the article 206 can beweighted up or down based on the user's pre-click activity and theuser's post-click activity. A profile model 212 is applied to determinefeature scores for various features based on the clicks and theirassociated weights which have been determined based on pre-click and/orpost-click activity. The resulting user profile 214 thus defines variousfeatures and their associated scores, which indicate the relativeinterest level of the user for particular features.

One model for building a user interest profile defines a profilecontaining the smoothed normalized feature counts for all features thata user has seen. Where n_(ij) is the number of times that a user i hasclicked on items containing feature j, then for each feature that a userhas seen, one can construct a user profile wherein the score s_(ij) foreach feature is defined as follows:

$s_{ij} = \frac{n_{ij} + \alpha}{{\sum_{j}n_{ij}} + \beta}$

In the above, α and β are smoothing parameters. The score for a givenfeature is thus defined by the click count for that feature versus thecombined click count for all features that the user has seen.

In accordance with embodiments of the invention, a dwell time basedweight can be defined for a user i who reads an article m, as follows:

w _(im)=log(T _(im)+1)

wherein T_(im) is the dwell time of a user i reading article m.

Accordingly, the cumulative weight of articles read by a user icontaining feature j is the sum of w_(im) over all articles that containfeature j, which can be represented as follows:

$w_{ij} = {\sum\limits_{m_{j}}w_{i\; m}}$

wherein m_(j) is an article containing feature j.

Thus, in accordance with the previously described scoring methodology, anew user profile can be defined utilizing the dwell time-based weights,wherein the score s_(ij) for each feature is defined as follows:

$s_{ij} = \frac{w_{ij} + \alpha}{{\sum_{j}w_{ij}} + \beta}$

wherein α and β are smoothing parameters. The score for a given featureis thus defined by the total weight for that feature versus the combinedtotal weight for all features that the user has seen.

A more nuanced user interest profile can be obtained by applying asparse polarity model, which is better suited to identify features thatare unique to the user rather than those that are popular among allusers. For this model, a background probability of a user clicking on agiven term j can be calculated as follows:

$P_{+ j} = \frac{\sum_{i}\left( n_{ij} \right)}{\sum_{ij}\left( n_{ij} \right)}$

The expected clicks, e_(ij), by a user i on term j is then:

$e_{ij} = {P_{+ j}{\sum\limits_{j}\left( n_{ij} \right)}}$

As P_(+j) is the probability of someone in the general populationclicking on term j, which is multiplied by the total number of clicks byuser i, e_(ij) can be interpreted as the expected number of clicks on jby user i assuming the user/category affinity does not deviate from thegeneral population.

A user affinity score can then be calculated as follows:

$\lambda_{ij} = \frac{n_{ij} + k}{e_{ij} + k}$

wherein k is a chi squared smoothing parameter. Ignoring the smoothingparameter k, it can be seen that λ_(ij) represents a comparison betweenthe actual number of clicks for user i on articles containing feature jand the expected number of clicks based on the probability in thegeneral population.

Then, in order to remove terms from the user model that have an affinityscore that is not significantly higher than that of the generalpopulation, a z-statistic can be computed as the log normalized affinityscore divided by the standard deviation:

$z = \frac{{\log \left( \lambda_{ij} \right)}}{\sigma}$

Then the final affinity scores are determined as follows:

score=(z>1)? log(λ_(ij)): 0

In other words, if z is greater than one, then the score for the featurej is equal to the log of λ_(ij), whereas if z is not greater than one,then the score for the feature is zero, which effectively eliminates thefeature from the user profile.

For a dwell time based approach to the above-described sparse polarityimplementation, the previously discussed weight w_(ij) can be applied.The background probability of a user's weighted interaction on a giventerm j is thus determined as follows:

$P_{+ j} = \frac{\sum\limits_{i}^{\;}\; \left( w_{ij} \right)}{\sum\limits_{ij}^{\;}\; \left( w_{ij} \right)}$

The expected weight, e_(ij), by user i on term j is then determined asfollows:

$e_{ij} = {P_{+ j}{\sum\limits_{j}^{\;}\; \left( w_{ij} \right)}}$

The user affinity score is then calculated as follows:

$\lambda_{ij} = \frac{w_{ij} + k}{e_{ij} + k}$

Ignoring the smoothing parameter k, it can be seen that λ_(ij)represents a comparison between the actual total weight for user i onarticles containing feature j and the expected total weight based on theprobability in the general population.

The z-statistic and final feature score are determined as previouslydescribed. In this manner, a user profile is defined based on the user'smeasured dwell times for a given feature referenced against those of thegeneral population of users for the same feature, so as to identifyfeatures for which the user's engagement level significantly exceedsthat of the general population.

As discussed herein, there may be various feature types (e.g.categories, subjects, persons, locations, etc.). Therefore, in a relatedimplementation of the (click-based) sparse polarity model, a givenfeature is analyzed in relation to its type (herein referred to as its“feature type”).

The background probability of a user clicking on an article aboutfeature j, wherein feature j's type is T(j), is determined as follows:

$P_{+ {{jT}{(j)}}} = \frac{\sum\limits_{i}^{\;}\; \left( n_{ij} \right)}{\sum\limits_{i}^{\;}\; \left( n_{{iT}{(j)}} \right)}$

wherein n_(ij) is the number of times that a user i reads an articleabout feature j, and wherein n_(iT(j)) is the number of times that useri reads any article having the same type as that of feature j.

The expected clicks, e_(ij), by a user i on term j is then:

e _(ij) =P _(+jT(j)) n _(iT(j))

A user affinity score can then be calculated as follows:

$\lambda_{ij} = \frac{n_{ij} + k}{e_{ij} + k}$

wherein k is a chi squared smoothing parameter.

Then, in order to remove terms from the user model that have an affinityscore that is not significantly higher than that of the generalpopulation, a z-statistic can be computed as the log normalized affinityscore divided by the standard deviation:

$z = \frac{{\log \left( \lambda_{ij} \right)}}{\sigma}$ wherein$\sigma = \sqrt{\frac{1}{e_{ij} + k}}$

Then the final affinity scores are determined as follows:

score=(z>1)? log(λ_(ij)): 0

For a dwell time based approach to the presently-described sparsepolarity implementation which accounts for feature type, the previouslydiscussed weight w_(ij) can be applied. The background probability of auser's weighted interaction on an article about feature j, whereinfeature j's type is T(j), is determined as follows:

$P_{+ {{jT}{(j)}}} = \frac{\sum\limits_{i}^{\;}\; \left( w_{ij} \right)}{\sum\limits_{i}^{\;}\; \left( w_{{iT}{(j)}} \right)}$

wherein w_(ij) is the total weight of articles read by a user icontaining feature j (calculated as the sum of w_(im) over all articlesm that contain feature j), and wherein w_(iT(j)) is the total weight ofarticles read by user i having the same type as that of feature j.

The expected weight, e_(ij), by a user i on term j is then:

e _(ij) =P _(+jT)(j)w _(iT(j))

A user affinity score can then be calculated as follows:

$\lambda_{ij} = \frac{w_{ij} + k}{e_{ij} + k}$

Ignoring the smoothing parameter k, it can be seen that λ_(ij)represents a comparison between the actual total weight for user i onarticles containing feature j and the expected total weight based on theprobability in the general population for the same feature type.

The z-statistic and final feature score are determined as previouslydescribed. In this manner, a user profile is defined based on the user'smeasured dwell times for a given feature referenced against those of thegeneral population of users for the same feature and feature type, so asto identify features for which the user's engagement level significantlyexceeds that of the general population.

Another approach to building a user profile for content recommendationis known as the TFIDF (term frequency inverse document frequency) model.An intermedia score for each user i and each feature j is calculated asfollows:

$r_{ij} = {\left( {n_{ij} + k} \right){\log\left( {1 + \frac{{\sum\limits_{i}^{\;}\; \left( n_{{iT}{(j)}} \right)} + 1}{{\sum\limits_{i}^{\;}\; \left( n_{ij} \right)} + 0.5}} \right)}}$

The final interest score for each user i and each feature j is thendetermined as follows:

$s_{ij} = \frac{r_{ij}}{\sum\limits_{j}^{\;}\; \left( r_{ij} \right)}$

For a dwell time based approach to the above-described TFIDF model, anintermedia score for each user i and each feature j is calculated asfollows:

$r_{ij} = {\left( {w_{ij} + k} \right){\log\left( {1 + \frac{{\sum\limits_{i}^{\;}\left( w_{{iT}{(j)}} \right)} + 1}{{\sum\limits_{i}^{\;}\left( w_{ij} \right)} + 0.5}} \right)}}$

The final interest score for each user i and each feature j is thendetermined as previously described. In this manner, a dwell time basedapproach is provided for building a user interest profile applying theTFIDF model.

In additional embodiments, dwell time information can be combined withother information which is indicative of user engagement or interest.For example, in a scrollable context (e.g. a scrollable listing ofarticle previews) scroll depth can be an indicator of user engagement,as described in U.S. application Ser. No. 13/836,758, filed Mar. 15,2013, entitled “Method and System for Measuring User Engagement UsingScroll Dwell Time,” which is incorporated by reference herein.

FIG. 3 illustrates a stream of article previews, in accordance with anembodiment of the invention. As shown, a stream 300 of article previewsincludes various positions for presenting article previews. For example,at a first position 304, a first article preview is shown; at a secondposition 306, a second article preview is shown; and at a third position308, a third article preview is shown. It should be appreciated that thestream 300 of article previews can be presented in a given context 302.The context 302 may be browser window, a display on a device, a framewithin a larger web page, or any other context in which a scrollablestream of article previews may be presented and which enablesinteraction by the user to select ones of the article previews in thestream.

In one embodiment, the user clicks on an article preview located at aposition k (shown at ref. 310) within the stream of article previews. Asa result, a corresponding article k (shown at ref. 312) is presented tothe user for viewing. Because the article preview at the position kappears in a stream of previews, its relative position within the streamis indicative of the user's interest level in features of the article.For example, if a user clicks on an article preview appearing at a lowerposition within the stream (e.g. corresponding to a higher numberedposition; deeper or lower within the stream such that the user mustscroll farther to reach it), then this may indicate greater interest onthe part of the user for features of the corresponding article, ascompared to an article preview appearing at a relatively higher position(e.g. lower numbered position, appearing at higher location) within thestream of article previews.

Additionally, the depth d to which the user scrolls the stream 300 mayalso indicate a relative level of interest. The depth d is the maximumdepth of the stream to which the user scrolls or which the userotherwise views. Accordingly, the article weight can be boosted by thefollowing:

$1 + {\ln \left( {1 - \frac{1}{d} + \frac{k}{d}} \right)}$

Accordingly, each viewed article's weight can be calculated as follows:

$w_{im} = {{\ln \left( {T_{im} + 1} \right)}*\left( {1 + {\ln \left( {1 - \frac{1}{d} + \frac{k}{d}} \right)}} \right)}$

In embodiments described herein, dwell times have been applied, as is,for purposes of determining a weight. However, in other embodiments,groups may be defined for dwell times which define ranges of dwell timesthat will be assigned the same value for purposes of determining theresulting weight. For example, dwell times from 0-5 seconds may beassigned a first value; dwell times from 5-15 seconds may be assigned asecond value; dwell times from 15-30 seconds may be assigned a thirdvalue; etc. The various values are then applied to weight acorresponding click, as discussed above.

In another example, a weight can be calculated by taking the integerportion of the log of the dwell time, as follows:

w _(im)=int[ln(T _(im)+1)]

The effect of this calculation is to define ranges wherein the weightfor a dwell time ranging from zero to e is zero; the weight for a dwelltime ranging from e to e² is one; the weight for a dwell time rangingfrom e² to e³ is two; etc.

In yet another embodiment, the weight for a given range of dwell timescould be assigned a negative value/weight. For example, a very low dwelltime may be taken as an indication that the user disliked the contentitem, and therefore a negative weight may be applied for dwell times ina low range (e.g. zero to two seconds). With reference to the weightdetermination based on the integer portion of the log of the dwell timedescribed above, a negative weight could be applied to the lowest rangeof dwell times (zero to e) by defining the weight as follows:

w _(im)=int[ln(T _(im)+1)]−1

FIG. 4 illustrates an embodiment of a general computer system designated400. The computer system 400 can include a set of instructions that canbe executed to cause the computer system 400 to perform any one or moreof the methods or computer based functions disclosed herein. Thecomputer system 400 may operate as a standalone device or may beconnected, e.g., using a network, to other computer systems orperipheral devices.

In a networked deployment, the computer system 400 may operate in thecapacity of a server or as a client user computer in a server-clientuser network environment, or as a peer computer system in a peer-to-peer(or distributed) network environment. The computer system 400 can alsobe implemented as or incorporated into various devices, such as apersonal computer (PC), a tablet PC, a set-top box (STB), a personaldigital assistant (PDA), a mobile device, a palmtop computer, a laptopcomputer, a desktop computer, a communications device, a wirelesstelephone, a land-line telephone, a control system, a camera, a scanner,a facsimile machine, a printer, a pager, a personal trusted device, aweb appliance, a network router, switch or bridge, or any other machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. In a particularembodiment, the computer system 400 can be implemented using electronicdevices that provide voice, video or data communication. Further, whilea single computer system 400 is illustrated, the term “system” shallalso be taken to include any collection of systems or sub-systems thatindividually or jointly execute a set, or multiple sets, of instructionsto perform one or more computer functions.

As illustrated in FIG. 4, the computer system 400 may include aprocessor 402, e.g., a central processing unit (CPU), a graphicsprocessing unit (GPU), or both. The processor 402 may be a component ina variety of systems. For example, the processor 402 may be part of astandard personal computer or a workstation. The processor 402 may beone or more general processors, digital signal processors, applicationspecific integrated circuits, field programmable gate arrays, servers,networks, digital circuits, analog circuits, combinations thereof, orother now known or later developed devices for analyzing and processingdata. The processor 402 may implement a software program, such as codegenerated manually (i.e., programmed).

The computer system 400 may include a memory 404 that can communicatevia a bus 408. The memory 404 may be a main memory, a static memory, ora dynamic memory. The memory 404 may include, but is not limited tocomputer readable storage media such as various types of volatile andnon-volatile storage media, including but not limited to random accessmemory, read-only memory, programmable read-only memory, electricallyprogrammable read-only memory, electrically erasable read-only memory,flash memory, magnetic tape or disk, optical media and the like. In oneembodiment, the memory 404 includes a cache or random access memory forthe processor 402. In alternative embodiments, the memory 404 isseparate from the processor 402, such as a cache memory of a processor,the system memory, or other memory. The memory 404 may be an externalstorage device or database for storing data. Examples include a harddrive, compact disc (“CD”), digital video disc (“DVD”), memory card,memory stick, floppy disc, universal serial bus (“USB”) memory device,or any other device operative to store data. The memory 404 is operableto store instructions executable by the processor 402. The functions,acts or tasks illustrated in the figures or described herein may beperformed by the programmed processor 402 executing the instructionsstored in the memory 404. The functions, acts or tasks are independentof the particular type of instructions set, storage media, processor orprocessing strategy and may be performed by software, hardware,integrated circuits, firm-ware, micro-code and the like, operating aloneor in combination. Likewise, processing strategies may includemultiprocessing, multitasking, parallel processing and the like.

As shown, the computer system 400 may further include a display unit410, such as a liquid crystal display (LCD), an organic light emittingdiode (OLED), a flat panel display, a solid state display, a cathode raytube (CRT), a projector, a printer or other now known or later developeddisplay device for outputting determined information. The display 410may act as an interface for the user to see the functioning of theprocessor 402, or specifically as an interface with the software storedin the memory 404 or in the drive unit 416.

Additionally or alternatively, the computer system 400 may include aninput device 412 configured to allow a user to interact with any of thecomponents of system 400. The input device 412 may be a number pad, akeyboard, or a cursor control device, such as a mouse, or a joystick,touch screen display, remote control or any other device operative tointeract with the computer system 400.

The computer system 400 may also or alternatively include a disk oroptical drive unit 416. The disk drive unit 416 may include acomputer-readable medium 422 in which one or more sets of instructions424, e.g. software, can be embedded. Further, the instructions 424 mayembody one or more of the methods or logic as described herein. Theinstructions 424 may reside completely or partially within the memory404 and/or within the processor 402 during execution by the computersystem 400. The memory 404 and the processor 402 also may includecomputer-readable media as discussed above.

In some systems, a computer-readable medium 422 includes instructions424 or receives and executes instructions 424 responsive to a propagatedsignal so that a device connected to a network 426 can communicatevoice, video, audio, images or any other data over the network 426.Further, the instructions 424 may be transmitted or received over thenetwork 426 via a communication port or interface 420, and/or using abus 408. The communication port or interface 420 may be a part of theprocessor 402 or may be a separate component. The communication port 420may be created in software or may be a physical connection in hardware.The communication port 420 may be configured to connect with a network426, external media, the display 410, or any other components in system400, or combinations thereof. The connection with the network 426 may bea physical connection, such as a wired Ethernet connection or may beestablished wirelessly as discussed below. Likewise, the additionalconnections with other components of the system 400 may be physicalconnections or may be established wirelessly. The network 426 mayalternatively be directly connected to the bus 408.

While the computer-readable medium 422 is shown to be a single medium,the term “computer-readable medium” may include a single medium ormultiple media, such as a centralized or distributed database, and/orassociated caches and servers that store one or more sets ofinstructions. The term “computer-readable medium” may also include anymedium that is capable of storing, encoding or carrying a set ofinstructions for execution by a processor or that cause a computersystem to perform any one or more of the methods or operations disclosedherein. The computer-readable medium 422 may be non-transitory, and maybe tangible.

The computer-readable medium 422 can include a solid-state memory suchas a memory card or other package that houses one or more non-volatileread-only memories. The computer-readable medium 422 can be a randomaccess memory or other volatile re-writable memory. Additionally oralternatively, the computer-readable medium 422 can include amagneto-optical or optical medium, such as a disk or tapes or otherstorage device to capture carrier wave signals such as a signalcommunicated over a transmission medium. A digital file attachment to ane-mail or other self-contained information archive or set of archivesmay be considered a distribution medium that is a tangible storagemedium. Accordingly, the disclosure is considered to include any one ormore of a computer-readable medium or a distribution medium and otherequivalents and successor media, in which data or instructions may bestored.

In an alternative embodiment, dedicated hardware implementations, suchas application specific integrated circuits, programmable logic arraysand other hardware devices, can be constructed to implement one or moreof the methods described herein. Applications that may include theapparatus and systems of various embodiments can broadly include avariety of electronic and computer systems. One or more embodimentsdescribed herein may implement functions using two or more specificinterconnected hardware modules or devices with related control and datasignals that can be communicated between and through the modules, or asportions of an application-specific integrated circuit. Accordingly, thepresent system encompasses software, firmware, and hardwareimplementations.

The computer system 400 may be connected to one or more networks 426.The network 426 may define one or more networks including wired orwireless networks. The wireless network may be a cellular telephonenetwork, an 802.11, 802.16, 802.20, or WiMax network. Further, suchnetworks may include a public network, such as the Internet, a privatenetwork, such as an intranet, or combinations thereof, and may utilize avariety of networking protocols now available or later developedincluding, but not limited to TCP/IP based networking protocols. Thenetwork 426 may include wide area networks (WAN), such as the Internet,local area networks (LAN), campus area networks, metropolitan areanetworks, a direct connection such as through a Universal Serial Bus(USB) port, or any other networks that may allow for data communication.The network 426 may be configured to couple one computing device toanother computing device to enable communication of data between thedevices. The network 426 may generally be enabled to employ any form ofmachine-readable media for communicating information from one device toanother. The network 426 may include communication methods by whichinformation may travel between computing devices. The network 426 may bedivided into sub-networks. The sub-networks may allow access to all ofthe other components connected thereto or the sub-networks may restrictaccess between the components. The network 426 may be regarded as apublic or private network connection and may include, for example, avirtual private network or an encryption or other security mechanismemployed over the public Internet, or the like.

In accordance with various embodiments of the present disclosure, themethods described herein may be implemented by software programsexecutable by a computer system. Further, in an exemplary, non-limitedembodiment, implementations can include distributed processing,component/object distributed processing, and parallel processing.Alternatively, virtual computer system processing can be constructed toimplement one or more of the methods or functionality as describedherein.

Although the present specification describes components and functionsthat may be implemented in particular embodiments with reference toparticular standards and protocols, the invention is not limited to suchstandards and protocols. For example, standards for Internet and otherpacket switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP)represent examples of the state of the art. Such standards areperiodically superseded by faster or more efficient equivalents havingessentially the same functions. Accordingly, replacement standards andprotocols having the same or similar functions as those disclosed hereinare considered equivalents thereof.

The above disclosed subject matter is to be considered illustrative, andnot restrictive, and the appended claims are intended to cover all suchmodifications, enhancements, and other embodiments, which fall withinthe true spirit and scope of the present invention. Thus, to the maximumextent allowed by law, the scope of the present invention is to bedetermined by the broadest permissible interpretation of the followingclaims and their equivalents, and shall not be restricted or limited bythe foregoing detailed description. While various embodiments of theinvention have been described, it will be apparent to those of ordinaryskill in the art that many more embodiments and implementations arepossible within the scope of the invention. Accordingly, the inventionis not to be restricted except in light of the attached claims and theirequivalents.

What is claimed is:
 1. A method for building a user interest profile,comprising: identifying features of each of a plurality of articles; fora given user, logging views of one or more of the plurality of articles;for each view, measuring a corresponding dwell time for the view by thegiven user; applying a weight to each view based on the correspondingmeasured dwell time; determining user interest scores for features ofthe one or more of the plurality of articles based on the weightedviews; generating a user interest profile for the given user based onthe user interest scores; wherein the method is executed by at least oneprocessor.
 2. The method of claim 1, wherein the dwell time for a viewof a given article defines a measured amount of time spent by the givenuser during active viewing of the given article.
 3. The method of claim1, wherein the applying the weight to each view defines an increase ordecrease in a value associated with the view that is based on thecorresponding measured dwell time.
 4. The method of claim 1, whereinapplying the weight to each view is based on a logarithmic function ofthe corresponding measured dwell time.
 5. The method of claim 1, whereinthe user interest score for a given feature defines a level of interestfor the given feature by the given user.
 6. The method of claim 1,wherein the user interest profile is defined by features of the one ormore of the plurality of articles and their associated user interestscores.
 7. The method of claim 1, wherein the identified featuresinclude one or more of categories, entities, persons, locations,subjects, teams.
 8. The method of claim 1, further comprising, for aplurality of users, logging views of the plurality of articles; for eachview by one of the plurality of users, measuring a corresponding dwelltime for the view by the one of the plurality of users; applying aweight to each view by one of the plurality of users based on thecorresponding measured dwell time of the one of the plurality of users;wherein determining user interest scores is based on the weighted viewsof the plurality of users.
 9. The method of claim 8, wherein applyingthe weight to each view by one of the plurality of users is based on alogarithmic function of the corresponding measured dwell time of the oneof the plurality of users.
 10. The method of claim 8, whereindetermining user interest scores includes, for a given feature,determining an overall probability that the plurality of users will viewan article having the given feature; determining, for the given feature,an expected number of views by the given user based on the overallprobability that the plurality of users will view an article having thegiven feature; determining an actual number of views of articles havingthe given feature by the given user; comparing the actual number ofviews to the expected number of views.
 11. A non-transitory computerreadable medium having program instructions embodied thereon forbuilding a user interest profile, comprising: program instructions foridentifying features of each of a plurality of articles; programinstructions for, for a given user, logging views of one or more of theplurality of articles; program instructions for, for each view,measuring a corresponding dwell time for the view by the given user;program instructions for applying a weight to each view based on thecorresponding measured dwell time; program instructions for determininguser interest scores for features of the one or more of the plurality ofarticles based on the weighted views; program instructions forgenerating a user interest profile for the given user based on the userinterest scores.
 12. The computer readable medium of claim 11, whereinthe dwell time for a view of a given article defines a measured amountof time spent by the given user during active viewing of the givenarticle.
 13. The computer readable medium of claim 11, wherein theapplying the weight to each view defines an increase or decrease in avalue associated with the view that is based on the correspondingmeasured dwell time.
 14. The computer readable medium of claim 11,wherein applying the weight to each view is based on a logarithmicfunction of the corresponding measured dwell time.
 15. The computerreadable medium of claim 11, wherein the user interest score for a givenfeature defines a level of interest for the given feature by the givenuser.
 16. The computer readable medium of claim 11, wherein the userinterest profile is defined by features of the one or more of theplurality of articles and their associated user interest scores.
 17. Thecomputer readable medium of claim 11, wherein the identified featuresinclude one or more of categories, entities, persons, locations,subjects, teams.
 18. The computer readable medium of claim 11, furthercomprising, program instructions for, for a plurality of users, loggingviews of the plurality of articles; program instructions for, for eachview by one of the plurality of users, measuring a corresponding dwelltime for the view by the one of the plurality of users; programinstructions for applying a weight to each view by one of the pluralityof users based on the corresponding measured dwell time of the one ofthe plurality of users; wherein determining user interest scores isbased on the weighted views of the plurality of users.
 19. The computerreadable medium of claim 18, wherein applying the weight to each view byone of the plurality of users is based on a logarithmic function of thecorresponding measured dwell time of the one of the plurality of users.20. The computer readable medium of claim 18, wherein determining userinterest scores includes, for a given feature, determining an overallprobability that the plurality of users will view an article having thegiven feature; determining, for the given feature, an expected number ofviews by the given user based on the overall probability that theplurality of users will view an article having the given feature;determining an actual number of views of articles having the givenfeature by the given user; comparing the actual number of views to theexpected number of views.